package com.cnhis.cloudhealth.clinical.infusion.base.service;

import com.cnhis.cloudhealth.commons.Mappers.ModelVo;

import java.util.List;
import java.util.Map;

/**
 * Created by hdd on 2016/9/18.
 */
public interface IInfusion {
    /**
     * 查询病人列表信息 （输液  待执行  病人）
     * @param map
     * @return
     * @throws Exception
     */
    Map<String, Object> findPatientList(Map<String, Object> map) throws Exception;

    /**
     * 查询病人列表信息 （输液 已完成  病人）
     * @param map
     * @return
     * @throws Exception
     */
    Map<String, Object> findCompletedPatientList(Map<String, Object> map) throws Exception;


    /**
     * 查询科室  病区信息
     * @return
     * @throws Exception
    */
    Map<String, Object> queryDept(Map<String, Object> map) throws Exception;

    /**
     * 根据 就诊id  查询此病人的详细信息
     * @param map
     * @return
     * @throws Exception
     */
    Map<String, Object> queryDetailPatient(Map<String, Object> map) throws Exception;

    /**
     * 获取病人  执行项目
     * 待执行病人  （进行中的 项目）
     * @param map
     * @param currPage
     * @param pageSize
     * @return
     * @throws Exception
     */
    Map<String,Object> queryExecutePro(Map<String, Object> map,int currPage, int pageSize)throws Exception;

    /**
     * queryOverProject  2016-12-16日  开始使用
     * 获取病人  已完成项目
     * 待执行病人  （已完成项目的 项目）
     * @param map
     * @param currPage
     * @param pageSize
     * @return
     * @throws Exception
     */
    Map<String,Object> queryOverProject(Map<String, Object> map,int currPage, int pageSize)throws Exception;

    /**
     * 获取病人  执行项目
     * 此方法 queryCompleteExecutePro  2016-12-16日  停止使用
     * 已完成  病人  （已完成的 项目）
     * @param map
     * @param currPage
     * @param pageSize
     * @return
     * @throws Exception
     */
    Map<String,Object> queryCompleteExecutePro(Map<String, Object> map,int currPage, int pageSize)throws Exception;


    /**
     * 获取病人  执行记录   也就是项目的明细
     * @param map
     * @param currPage
     * @param pageSize
     * @return
     * @throws Exception
     */
    Map<String,Object> queryExecuteRecord(Map<String, Object> map,int currPage, int pageSize)throws Exception;

    /**
     * 获取收费 记录
     * @param map
     * @param currPage
     * @param pageSize
     * @return
     * @throws Exception
     */
    Map<String,Object> queryChargeRecord(Map<String, Object> map,int currPage, int pageSize)throws Exception;

    /**
     * 接单时  查询搜索的人员
     * 执行人  配药人  接单人
     * @return
     * @throws Exception
     */
    Map<String,Object> queryUser(Map<String, Object> paraMap)throws Exception;

    /**
     * 查询所有  待执行医嘱  信息
     * @param map
     * @param currPage
     * @param pageSize
     * @return
     * @throws Exception
     */
    Map<String,Object> queryExcuseDoctor(Map<String, Object> map,int currPage, int pageSize)throws Exception;


    /**
     * 保存接单 信息
     * member//会员类型   金卡2，普通卡1，钻石卡3
     * @return
     * @throws Exception
     */
    public ModelVo saveOrders(Map<String, Object> vbj1_map,/**病人医嘱执行  基本信息**/
                              List<Map<String, Object>> vaf1_list,  /**病人医嘱记录  list表格**/
                              Map<String, Object> userMap, String vaa01, int member, String vaa07
    )throws Exception ;

    /**
     *  查询  输液单，注射单 等 各个单据  用于打印
     * @return
     * @throws Exception
     */
    Map<String,Object> querySingleinfusion(Map<String, Object> paramMap)throws Exception;

    /**
     * 点击执行完成 的操作
     * @param paramMap
     * @return
     * @throws Exception
     */
    public String performOver(List<Map<String, Object>> cbmAndVaf_list,String trueName,String vaa07)throws Exception;

    /**
     * @param map
     * @return com.cnhis.cloudhealth.commons.Mappers.ModelVo
     * @throws
     * @Title: completes
     * @Description: （点击执行完成）
     * @author chengshaowei
     * @date 2017/11/3
     */
    ModelVo completes(Map<String, Object> map) throws Exception;


    /**
     * 退费审核
     * @param paramMap
     * @return
     * @throws Exception
     */
    public Map<String,Object> queryRefundAudit(Map<String, Object> paramMap,int currPage, int pageSize)throws Exception;

    /**
     * 退费审核中的 人员搜索
     * @param paramMap
     * @param currPage
     * @param pageSize
     * @return
     * @throws Exception
     */
    public Map<String,Object> queryUserInRefundAudit(Map<String, Object> paramMap,int currPage, int pageSize)throws Exception;


    /**
     * 根据科室查询  此科室下的所有人员
     * 退费审核
     * @param paramMap
     * @return
     * @throws Exception
     */
    public Map<String,Object> refundAuditByDepId(Map<String, Object> paramMap,int currPage, int pageSize)throws Exception;


    /**
     * 点击皮试结果
     * @param paramMap
     * @return
     * @throws Exception
     */
    public List<Map<String, Object>> skinTest(Map<String, Object> paramMap) throws Exception;

    public List<Map<String, Object>> skinTest1(Map<String, Object> paramMap) throws Exception;

    /**
     * 基本信息 保存皮试前使用
     * @param vaf01
     * @return
     * @throws Exceptio
     */
    public List queryBaseInfo(Map<String, Object> paramMap)throws Exception;

    /**
     * 皮试的修改
     * 保存皮试信息   更新vaf
     * @param map
     * @throws Exception
     */
    public void saveSkinTestResult(Map<String, Object> map)throws Exception;


    /**
     * 查询是否具有过敏记录
     * @param paramMap
     * @return
     * @throws Exception
     */
    public List queryIsHasSkinRecord(Map<String, Object> paramMap)throws Exception;

    /**
     * 添加过敏记录
     * @param paramMap
     * @throws Exception
     */
    public void addSkinRecord(Map<String, Object> paramMap)throws Exception;

    /**
     * 修改过敏记录
     * @param paramMap
     * @throws Exception
     */
    public void updateSkinRecord(Map<String, Object> paramMap)throws Exception;


    /**
     * 查询是否具有过敏药物
     * @param paramMap
     * @return
     * @throws Exception
     */
    public List queryIsHasSkinDrug(Map<String, Object> paramMap)throws Exception;


    /**
     * 添加过敏药物
     * @param paramMap
     * @throws Exception
     */
    public void addSkinDrug(Map<String, Object> paramMap)throws Exception;

    /**
     * 退费审核的保存
     * @param map
     * @return
     * @throws Exception
     */
    Map<String, Object> refund(Map<String, Object> map) throws Exception ;

    /**
     * 根据 vaf01  查询vbj表  查询出  执行时间 vaj08  用于打印
     * @param vaf01
     * @return
     * @throws Exception
     */
    public Map<String, Object> queryVaj08ByVaf01(Map<String, Object> paramMap)throws Exception;

    /**
     * 查询病人 是不是会员
     * @throws Exception
     */
    public Map<String,Object> findMembers(String vaa01)throws Exception;

    /**
     * 查询病人 会员卡类型
     */
    public Map<String,Object> findMemberCardType(String vaa01)throws Exception;

    /**
     * 根据 科室 和  vaf01 查询是否可以申请  是本科室给药途径退费
     * @return
     * @throws Exception
     */
    public Map<String,Object> queryApplyRefuse(Map<String, Object> paramMap)throws Exception;


    /**
     * 院内消息查询
     *
     * @param map
     * @param currPage
     * @param pageSize
     * @return
     * @throws Exception
     */
    Map<String, Object> yuanNeiNotice(Map<String, Object> map, int currPage, int pageSize) throws Exception;

    /**
     * @param vbj1_map
     * @param vaf1_list
     * @param memeber
     * @return com.cnhis.cloudhealth.commons.Mappers.ModelVo
     * @throws
     * @Title: findSumMoney
     * @Description: （查询扣费总金额）
     * @author chengshaowei
     * @date 2017/9/28
     */
    ModelVo findSumMoney(Map<String, Object> vbj1_map,/**病人医嘱执行  基本信息**/
                         List<Map<String, Object>> vaf1_list,  /**病人医嘱记录  list表格**/
                         int memeber) throws Exception;
}
